% Ejemplo de solucion numerica de un sistema de ecuaciones 
% diferenciales ordinarias mediante el metodo de Runge-Kutta-Fehlberg.
% Requiere rkf45.m y arenstorf.m.

% Se ponen las condiciones iniciales
a = 0;
b = 1000;
ya = [12000;600];
M = 10;    %h=(b-a)/M; 1000000
tol=1e-7;
clf;
z= rkf45('sistema',a,b,ya,M,tol); %Retorna [t, [x, y], h]

hold on;
plot(z(1, :), z(3,:),"*;Pumas;");  %y(t)
plot(z(1, :), z(2,:),"x;Guanacos;");  %x(t)

xlabel('Tiempo(dias)')
ylabel('Cantidad')
title('Sistema presa-predador')

hold off;

%mu = 0.012277471;
%plot(z(2, :), z(4,:));  %y(x)
%title('Orbita de Arenstorf');
%xlabel('x');
%ylabel('y');
%legend('y(x)');
%grid on;
%hold on;
%plot(-mu, 0, 'r*');
%plot(1-mu, 0,'r*');
%hold off;
%pause;
%grid off;
%Jacobi
%r1 = sqrt((z(2,:) + mu).^2 + z(4,:).^2 + 0^2);
%r2 = sqrt((z(2,:) - 1 + mu).^2 + z(4,:).^2 + 0^2);
%C = (z(2,:).^2 + z(4,:).^2 + 2 * (1 - mu) ./ r1 + 2 * mu ./ r2) - (z(3,:).^2 + z(5,:).^2);
%C = (z(2).^2 + z(4).^2 + 2 * (1 - mu) ./ r1 + 2 * mu ./ r2) - (z(3).^2 + z(5).^2);
%plot(C);
%title('Variabilidad de la constante C al aproximarla con el metodo de Runge-Kutta-Fehlberg');
%xlabel('n');
%ylabel('C');
legend('C_n');

%poner esto y poner la derivada de C
%rReal1 = ((ya(1)+mu)^2 + ya(3)^2)^(1/2);
%rReal2 = ((ya(1)-1+mu)^2 + ya(3)^2)^(1/2);
%CReal = ya(1)^2 + ya(3)^2 + 2 * (1 - mu)/rReal1 + 2*mu/rReal2 - (ya(2)^2 + ya(4)^2);
%plot(z(1,:),C);